labprogperrottifandomcom_pt_br-20200213-history
19-2 Grupo 2
'Autores' Alexandre de Carvalho Torres – RA 0040961723013 Bruno Felipe Ko Yan Ip – RA 0040961613034 'Projeto' Alarme de luz e som ativado por sensor de distância. 'Resumo' Projeto de um alarme com sensor de distância, LED RGB e piezoelétrico, usando o Arduino. 'Software / Materiais utilizados' Arduino IDE Arduino Genuino UNO Protoboard LED RGB Pastilha Piezo Elétrico Sensor de distância ultrassônico HC-SR04 Cabos jumper Cabo USB 'Metodologia' O projeto foi pensado como base para um alarme ativado por movimento. A abordagem inicial foi de adaptação dos códigos aprendidos em aula para cada material isoladamente. Devido a alguns erros, foram adicionadas, ainda, duas bibliotecas externas. Uma delas gera o toque do sensor piezoelétrico. A outra permite o funcionamento simultâneo do sensor, enquanto buzzer, e da lâmpada RGB. Ao fim, o projeto funcionou adequadamente. Cabe a ressalva, entretanto, de que ele é uma base que pode ser expandida para acomodar outros componentes, como teclado (para inserção de senha), sensor de movimento, trava para portas. 'Desenvolvimento' Descrição: No projeto utilizamos os componentes disponibilizados em aula. A montagem é bem simples, sendo que o cabo USB é suficiente para a alimentação do sistema. Porém, aqueles interessados em usar mais componentes ou, principalmente, luzes maiores, devem utilizar uma bateria. A primeira conexão feita do Arduino para a protoboard com os cabos jumper foi da entrada 5V e GND, já que todos os componentes necessitam dessas entradas. O primeiro componente instalado foi a luz RGB, conectando-se cada uma das cores correspondentes às portas digitais PWM, e o fio de energia à fileira do 5V na protoboard. Em seguida, foi colocado o sensor de distância. O GND e VCC (5V) foram ligados às respectivas fileiras na protoboard, já os pinos echo e trigger foram ligados a saídas digitais. Finalmente, o sensor piezoelétrico teve um de seus cabos conectados à fileira GND e outro à 5V. Código: #include #include int g = 9; int b = 10; int r = 11; #define TRIGGER 7 // Arduino pin tied to trigger pin on the ultrasonic sensor. #define ECHO 6 // Arduino pin tied to echo pin on the ultrasonic sensor. #define MAX_DISTANCE 100 // Maximum distance we want to ping for (in centimeters). #define ALARME 3 float sinVal; int tomVal; NewPing sonar(TRIGGER, ECHO, MAX_DISTANCE); boolean ativado = false; void setup() { // put your setup code here, to run once: pinMode(ALARME, OUTPUT); pinMode(r, OUTPUT); pinMode(b, OUTPUT); pinMode(r, OUTPUT); analogWrite(r, 255); analogWrite(b, 255); analogWrite(g, 255); delay(5000); Serial.begin(115200); } void color (unsigned char red, unsigned char green, unsigned char blue) // Função para gerar as cores { analogWrite(r, red); analogWrite(b, blue); analogWrite(g, green); } void alarme() { color(0,255,255); //vermelho delay(100); color(0,0,255); //amarelo delay(100); for (int x=0; x<180; x++) { // convert degrees to radians then obtain sin value sinVal = (sin(x*(3.1412/180))); // generate a frequency from the sin value tomVal = 2000+(int(sinVal*1000)); NewTone(ALARME, tomVal); } } void loop(){ if(ativado true){ alarme(); } else{ delay(50);// Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS). unsigned int distance = uS / US_ROUNDTRIP_CM; Serial.println(distance); if(distance < 100){ ativado = true; } } } Vídeo thumb|left|335px 'Resultados' Os resultados obtidos foram os esperados. Poucas dificuldades surgiram, mas foram superadas com a inserção de bibliotecas externas. Conclusão O sistema montado é simples, mas serve de base para um sistema de alarmes complexo que pode ser criado exclusivamente com o uso do Arduino e seus componentes. Assim, apesar da simplicidade, é um exemplo das inúmeras possibilidades comportadas pelo Arduino.